package com.yungu.swift.system.sys.model.dto;

import com.yungu.swift.base.model.BaseDto;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 平台信息
 **/
@Data
public class SysPlatformDto extends BaseDto {


    private String platformInfo;
    private String platformInvestor;
    private String platformPay;
    private String platformService;
    private String platformPermit;

    private String platformStat;


    /**
     * 平台基本信息
     */
    @Data
    public static class PlatformInfoDto implements Serializable {
        /**
         * 平台标识（部统一分配）
         **/
        private String companyId;
        /**
         * 名称
         **/
        private String companyName;

        /**
         * 注册地（省）行政区划代码  见GB/T 2260
         **/
        private String provinceAdcode;

        /**
         * 注册地（市）行政区划代码  见GB/T 2260
         **/
        private String cityAdcode;

        /**
         * 通信地址  全称
         **/
        private String contactAddress;

        /**
         * 统一社会信用代码
         **/
        private String identifier;

        /**
         * 经营范围  按照网络预约出租汽车经营许可证内容填写
         **/
        private String businessScope;

        /**
         * 经营业户经济类型  见JT/T415-2006中5.1.8规定
         **/
        private String economicType;

        /**
         * 注册资本  按照营业执照内容填写
         **/
        private String regCapital;

        /**
         * 法人代表姓名  按照营业执照内容填写
         **/
        private String legalName;

        /**
         * 法人代表电话
         **/
        private String legalPhone;

        /**
         * 法人代表身份证号
         **/
        private String legalId;

        /**
         * 法人代表身份证扫描件文件编号Jpg
         **/
        private String legalJpgPhoto;
        /**
         * 紧急联系电话
         */
        private String emergencyContactNo;
        /**
         * 平台联系人姓名
         */
        private String platformContactName;
        /**
         * 平台联系人电话
         */
        private String platformContactNo;
    }


    /**
     * 平台投资人信息
     */
    @Data
    public static class PlatformInvestorDto implements Serializable {
        /**
         * 投资人姓名
         **/
        private String investerName;

        /**
         * 投资人证件类型
         **/
        private String invIdType;

        /**
         * 投资人证件号码
         **/
        private String invIdCode;

        /**
         * 投资人资信金额(元)
         **/
        private BigDecimal money;
    }

    /**
     * 平台支付信息
     */
    @Data
    public static class PlatformPayDto implements Serializable {
        /**
         * 银行或者非银行支付机构名称  全称
         **/
        private String payName;

        /**
         * 非银行支付机构支付业务许可证编号
         **/
        private String payId;

        /**
         * 支付业务类型
         **/
        private String payType;

        /**
         * 业务覆盖范围
         **/
        private String payScope;

        /**
         * 备付金存管银行 全称
         **/
        private String prepareBank;

        /**
         * 结算周期  单位：天
         **/
        private Integer countDate;

        /**
         * 结算类型（1：银行、2：非银行）
         */
        private Integer settlementType;
    }


    /**
     * 平台服务机构信息
     */
    @Data
    public static class PlatformServiceDto implements Serializable {

        /**
         * 服务机构名称
         **/
        private String serviceName;

        /**
         * 服务机构代码
         **/
        private String serviceNo;

        /**
         * 省份
         */
        private String province;

        /**
         * 城市
         */
        private String city;

        /**
         * 成立时间
         */
        private Date createOn;

        /**
         * 联系地址
         **/
        private String concatAddress;

        /**
         * 联系电话
         **/
        private String contactPhone;

        /**
         * 服务机构负责人姓名
         **/
        private String responsibleName;

        /**
         * 服务机构负责人联系方式
         **/
        private String responsiblePhone;

        /**
         * 服务机构管理人姓名
         **/
        private String managerName;

        /**
         * 服务机构管理人联系方式
         **/
        private String managerPhone;

        /**
         * 行政文书送达邮寄地址
         **/
        private String mailAddress;

    }

    /**
     * 平台经营许可
     */
    @Data
    public static class PlatformPermitDto implements Serializable {

        /**
         * 省份
         */
        private String province;

        /**
         * 省份 Adcode
         */
        private String provinceAdcode;

        /**
         * 城市
         */
        private String city;

        /**
         * 城市 Adcode
         */
        private String cityAdcode;

        /**
         * 网络预约出租汽车经营许可证号
         **/
        private String certificate;

        /**
         * 经营范围
         **/
        private String operationArea;

        /**
         * 业户名称
         **/
        private String ownerName;

        /**
         * 发证机构名称
         **/
        private String organization;

        /**
         * 有效期起  YYYYMMDD
         **/
        private Date startDate;

        /**
         * 有效期止  YYYYMMDD
         **/
        private Date stopDate;

        /**
         * 初次发证日期  YYYYMMDD
         **/
        private Date certifyDate;

        /**
         * 证照状态(1：有效、2：无效）
         **/
        private String status;
    }


    /**
     * 平台营运规模
     */
    @Data
    public static class PlatformStatDto implements Serializable {
        /**
         * 车辆总数
         **/
        private Integer vehicleNum;

        /**
         * 司机总数
         **/
        private Integer driverNum;
    }
}
